package mest.dao.cxj;

import mest.VO.cxj.ProductOrderVO;
import mest.VO.cxj.ProductJobVO;
import mest.entity.plan_takematerial;
import mest.entity.product_job;
import mest.entity.product_order;
import org.apache.ibatis.annotations.Param;
import mest.entity.plan_purchase;

import java.util.List;

/**
 * @Description
 * @auther Machenike
 * @create 2019-11-21 0:01
 */
public interface OrderDao {
    //ajax查看生产计划单的流水序号
    int findProductOrderNumber();

    //addProductInfo页面查询存货信息  分页
    List<ProductJobVO> selectProductInfo(@Param("index") int index, @Param("pageSize") int pageSize);

    //addProductInfo页面查询存货信息  数量
    int selectProductInfoCount();

    //新增生产计划单
    int insertProductOrder(product_order po) throws Exception;

    //批量插入生产作业
    int insertProductJob(List<ProductJobVO> spJVO) throws Exception;

    //首页，所有单据表   分页
    List<ProductOrderVO> findAllOrder(@Param("index") int index, @Param("pageSize") int pageSize);

    //首页，所有单据表   数量
    int findAllOrderCount();

    //审核通过
    //1.插入采购单
    int insertPlan_Purchase(plan_purchase pp) throws Exception;

    //2.采购字典+1
    int updatePlan_PurchaseNumber() throws Exception;

    //3.一对多查询相应的PoId生产单对应的所有作业对象（采购,领料通用）
    List<product_job> findAllproduct_jobByPoId(@Param("poId") int poId);

    //4.批量录入生产作业的成品信息到采购内容中
    int insertAllJobtoPlan_productJob_purchase(@Param("ppId1") int ppId, @Param("list") List<product_job> pj) throws Exception;

    //5.插入领料单
    int insertPlan_TakeMaterial(plan_takematerial pp) throws Exception;

    //6.领料字典+1
    int updatePlan_TakeMaterialNumber() throws Exception;

    //7.批量录入生产作业的成品信息到领料内容中
    int insertAllJobtoPlan_productJob_TakeMaterial(@Param("ptId1") int ppId, @Param("list") List<product_job> pj) throws Exception;

}
